package com.trhui.mallbook.domain.request.dg;

import com.trhui.mallbook.domain.common.BaseRequest;

import java.util.List;

/**
 * 斗拱支付订单请求
 * 
 * @author: xiaogc
 * @date: 2025/1/17 11:49
 */
public class DgPaymentOrderRequest extends BaseRequest {
    /**
     * 业务订单号
     */
    private String bizOrderId;

    /**
     * 交易金额
     */
    private String amount;

    /**
     * 付款方名称
     */
    private String payerUserName;

    /**
     * 收款方子商户编号
     */
    private String payeeUserId;

    /**
     * 订单信息
     */
    private String orderName;

    /**
     * 支付类型
     * WX_JSAPI：微信公众号
     * WX_MINI：微信小程序
     * ALI_CB：支付宝C扫B
     * ALI_JSAPI：支付宝生活号
     * ALI_MINI：支付宝小程序
     */
    private String payType;

    /**
     * 交易类型
     * 0：担保交易（支付成功后，增加收款方的运营资金，需要调用异步分账接口，资金才会划转到分账方的可结算账户）
     * 1：直接支付（支付成功后，增加分账方的可结算资金，直接支付不可调用异步分账接口）
     */
    private String transferType;

    /**
     * 订单过期时间
     */
    private String expire;

    /**
     * 微信或支付宝的appid
     */
    private String appid;

    /**
     * 微信或支付宝用户id 支付宝小程序/支付宝生活号/微信公众号/微信小程序必填
     */
    private String openid;

    /**
     * 分账方列表
     */
    private List<DgSplitItem> splitList;

    /**
     * 支付完成页面自定义信息
     */
    private String payCompleteInfo;

    /**
     * 渠道号
     */
    private String payChannelMerNo;

    /**
     * 场景 ONLINE:线上 OFFLINE:线下 可以指定费率类型，不传为默认费率类型. 渠道号不为空时，场景必传
     */
    private String scene;

    /**
     * 前台回调地址
     */
    private String frontUrl;

    /**
     * 后台回调地址
     */
    private String notifyUrl;

    // 自定义参数1
    private String parameter1;

    /**
     * 自定义参数2
     */
    private String parameter2;

    public String getBizOrderId() {
        return bizOrderId;
    }

    public void setBizOrderId(String bizOrderId) {
        this.bizOrderId = bizOrderId;
    }

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getPayerUserName() {
        return payerUserName;
    }

    public void setPayerUserName(String payerUserName) {
        this.payerUserName = payerUserName;
    }

    public String getPayeeUserId() {
        return payeeUserId;
    }

    public void setPayeeUserId(String payeeUserId) {
        this.payeeUserId = payeeUserId;
    }

    public String getOrderName() {
        return orderName;
    }

    public void setOrderName(String orderName) {
        this.orderName = orderName;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getTransferType() {
        return transferType;
    }

    public void setTransferType(String transferType) {
        this.transferType = transferType;
    }

    public String getExpire() {
        return expire;
    }

    public void setExpire(String expire) {
        this.expire = expire;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public List<DgSplitItem> getSplitList() {
        return splitList;
    }

    public void setSplitList(List<DgSplitItem> splitList) {
        this.splitList = splitList;
    }

    public String getPayCompleteInfo() {
        return payCompleteInfo;
    }

    public void setPayCompleteInfo(String payCompleteInfo) {
        this.payCompleteInfo = payCompleteInfo;
    }

    public String getPayChannelMerNo() {
        return payChannelMerNo;
    }

    public void setPayChannelMerNo(String payChannelMerNo) {
        this.payChannelMerNo = payChannelMerNo;
    }

    public String getScene() {
        return scene;
    }

    public void setScene(String scene) {
        this.scene = scene;
    }

    public String getFrontUrl() {
        return frontUrl;
    }

    public void setFrontUrl(String frontUrl) {
        this.frontUrl = frontUrl;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getParameter1() {
        return parameter1;
    }

    public void setParameter1(String parameter1) {
        this.parameter1 = parameter1;
    }

    public String getParameter2() {
        return parameter2;
    }

    public void setParameter2(String parameter2) {
        this.parameter2 = parameter2;
    }

}
